package com.wpf.system.service;

import com.wpf.system.entity.vo.CascaderVO;
import com.wpf.system.entity.Menu;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
* @author ferna
* @description 针对表【menu(权限表（目录->菜单->权限）)】的数据库操作Service
* @createDate 2022-12-15 22:31:17
*/
public interface MenuService extends IService<Menu> {
    /**
     * 通过用户ID查询菜单
     * @param id 用户ID
     * @return 菜单集合
     */
    List<Menu> getUserMenuById(Long id);

    /**
     * 获取全部目录菜单按钮列表
     * @return 菜单集合
     */
    List<Menu> getMenuList();

    /**
     * 获取全部目录菜单列表
     * @return 菜单集合
     */
    List<CascaderVO> getParentMenuList();

    /**
     * 修改功能状态
     * @param id 用户ID
     * @return int
     */
    int editMenuStatusById(Long id);

    /**
     * 递归删除功能
     * @param id 菜单ID
     * @return
     */
    Boolean deleteMenuByd(Long id);

    /**
     * 根据角色ID查询所有目录/菜单/按钮权限
     * @param rid 角色ID
     * @return 菜单集合
     */
    List<Menu> getMenuByRid(Long rid);
}
